// packageE/stores/stores.js
var location = require("../../../mybehaviors/location/location");
var app = getApp();
Component({
  behaviors: [location],
  properties: {
    datas: {
      type: null,
    },
    component_id: {
      type: null,
    },
    U_tabcontrol: {
      type: null,
    },
    btnFlag: {
      type: null,
    },
    bottomShowBolIndex: {
      type: null,
    },
    index: {
      type: null,
    },
    plugin_active: String,
    isLast:{
      type:Boolean,
      value:false
    },
    bottomShowBol:{
      type:null
    }
  },
  // 私有数据，可用于模板渲染
  data: {
    emptyImage:  `${app.globalData.imgPath}image.png`,
    clientWidth: "375",
    active: "0",

    titleName: [
      {
        id: "business_merchant",
        text: "商家",
        url: "plugin.store-cashier.frontend.store.store.get-store-list-to-page",
      },
      {
        id: "business_discount",
        text: "折扣",
        url: "plugin.universal-card.frontend.store-discount.store-data",
      },
      {
        id: "business_coupon",
        text: "优惠券",
        url: "plugin.store-cashier.frontend.store.aggregate-page.coupon",
      },
      {
        id: "business_goods_gift",
        text: "礼包",
        url: "plugin.store-cashier.frontend.store.aggregate-page.goods-gift",
      },
    ],
    api: "",
    dataJson: {},
    pd_classfy_arr: [],
    pd_date_arr: [],
    //折扣的index
    pd_index: 0,
    pd_date_index: 0,
    //商家数组和分页数据
    shopList0: [],
    isLoadMore0: false,
    page0: 1,
    total_page0: 0,
    //折扣数组和分页数据
    shopList1: [],
    isLoadMore1: false,
    page1: 1,
    total_page1: 0,
    //优惠券数组和分页数据
    shopList2: [],
    isLoadMore2: false,
    page2: 1,
    total_page2: 0,
    //礼包数组和分页数据
    shopList3: [],
    isLoadMore3: false,
    page3: 1,
    total_page3: 0,
    pd_date: {},
    showMun: true,

    openTemplate: 0, //企业列表样式
    datas_style02: {
      "get_number": 999,
      "preview_color": "#f5f5f5",
      "font_size": 14,
      "font_color": "#666666",
      "border_radius": 35,
      "class_font_size": 12,
      "class_font_color": "#f08316",
      "class_bg_color": "#fff",
      "class_border_radius": 5,
      "location_font_size": 14,
      "location_font_color": "#666666",
      "discount_font_size": 10,
      "discount_title_color": "#ffffff",
      "discount_font_color": "#666666",
      "discount_list": [
        "1",
        "2",
        "3",
        "4"
      ],
      "tag_font_size": 10,
      "tag_font_color": "#fff",
      "tag_bg_color": "#f08316",
      "tag_border_color": "#f08316",
      "tag_border_radius": 5,
      "show_goods": true,
      "tab_list": [],
      "tab_bg_color": "#ffffff",
      "tab_color": "#333333",
      "tab_active_color": "#ff8400"
    }, //企业列表样式
    is_sales_display: 0, //企业 is_sales_display  0 不显示销量  1显示销量
    imgPath: app.globalData.imgPath,
  },
  observers:{
    'bottomShowBol':function(showbol){
      if(showbol){
        if(this.data.U_tabcontrol){
          if(this.data.isLast){
            if (this.data.isLoadMore0){
              this.getMoreList();
            }
          }
        }else{
          if( this.data.bottomShowBolIndex == this.data.index ){
            if(this.data.active == '1' && this.data.isLoadMore1){
              this.getMorePdData();  
            }else{
              if (this.data.isLoadMore0 || this.data.isLoadMore2 || this.data.isLoadMore3){
                this.getMoreList();
              }
            }
          }
        }
        
      }
    }
  },
  lifetimes: {
    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    attached() {
      let language = wx.getStorageSync("langIndex");
      this.setData({
        language: language.en,
      });
    },
    moved() {},
    detached() {},
  },

  // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
  attached() {},
  // 此处attached的声明会被lifetimes字段中的声明覆盖
  ready() {
    if (this.data.datas.discount_list.indexOf("1") > -1) {
      this.setData({
        showMun: true,
      });
    } else if (this.data.datas.discount_list.indexOf("1") < 0) {
      this.setData({
        showMun: false,
      });
    }
    this.setData({
      clientWidth: wx.getSystemInfoSync().windowWidth,
    });
    this._getLocation((res) => {
      console.log(res)
      if (this.data.U_tabcontrol) {
        this.chooseTab(" ", "business_merchant");
      } else {
        if (this.data.datas.tab_list.indexOf("1") > -1) {
          this.chooseTab(" ", "business_merchant");
        } else if (this.data.datas.tab_list.indexOf("2") > -1) {
          this.chooseTab(" ", "business_discount");
        } else if (this.data.datas.tab_list.indexOf("3") > -1) {
          this.chooseTab(" ", "business_coupon");
        } else if (this.data.datas.tab_list.indexOf("4") > -1) {
          this.chooseTab(" ", "business_goods_gift");
        }
      }
    },(err)=>{
      //拒绝定位
      if (this.data.U_tabcontrol) {
        this.chooseTab(" ", "business_merchant");
      } else {
        if (this.data.datas.tab_list.indexOf("1") > -1) {
          this.chooseTab(" ", "business_merchant");
        } else if (this.data.datas.tab_list.indexOf("2") > -1) {
          this.chooseTab(" ", "business_discount");
        } else if (this.data.datas.tab_list.indexOf("3") > -1) {
          this.chooseTab(" ", "business_coupon");
        } else if (this.data.datas.tab_list.indexOf("4") > -1) {
          this.chooseTab(" ", "business_goods_gift");
        }
      }
    });
    console.log(wx.getStorageSync("address-point"),'sssssssssssssss')
  },

  pageLifetimes: {
    // 组件所在页面的生命周期函数
    show() {},
    hide() {},
    resize() {},
  },
  methods: {
    // 跳转到店铺
    toRouter(e) {
      let item = e.currentTarget.dataset.item;
      if (item.specify_show == 1) {
        wx.navigateTo({
          url: "/packageC/o2o/o2oStore/o2oStore?store_id=" + item.id + "&fromHome=1",
        });
      } else {
        if (item.store_decorate == 1) {
          wx.navigateTo({
            url: "/packageG/o2o/HomeSeller/HomeSeller?store_id=" + item.id,
          });
        } else {
          wx.navigateTo({
            url: "/packageC/o2o/HomeSeller/HomeSeller?store_id=" + item.id,
          });
        }
      }
    },
    toClassify(e) {
      let id = e.currentTarget.dataset.id;
      let name = e.currentTarget.dataset.name;
      wx.navigateTo({
        url: "/packageC/o2o/o2oCategory/o2oCategory?id=" + id + "&city=" + 
        this.data.city + "&point=" + JSON.stringify(this.data.point) + '&name='+name,
      });
    },
    
    toGoods(e) {
      let item = e.currentTarget.dataset.item;
      wx.navigateTo({
        url: "/packageA/detail_v2/detail_v2?id=" + item.goods_id,
      });
    },
    //特权折扣--搜索--企业分类
    pdClassfySearch(e) {
      let index = e.currentTarget.dataset.index;
      let id = e.currentTarget.dataset.id;
      //1.改变选中状态
      this.setData({
        pd_index: index,
      });
      //2.修改搜索参数--企业分类
      this.setData({
        pd_category_id: id,
      });
      //3.初始化分页数据
      this.pdInitData();
      //4.执行搜索返回数据（带上日期的搜索值）
      this.getPdData();
    },
    //特权折扣--分页
    pdInitData() {
      this.setData({
        isLoadMore1: false,
        page1: 1,
        total_page1: 0,
        shopList1: [],
      });
    },
    //特权折扣--搜索--日期
    pdDateSearch(e) {
      let index = e.currentTarget.dataset.index;
      let date = e.currentTarget.dataset.date;
      //1.改变选中状态
      this.setData({
        pd_date_index: index,
      });
      //2.修改搜索参数--日期
      this.setData({
        pd_date: date,
      });
      //3.初始化分页数据
      this.pdInitData();
      //4.执行搜索返回数据（带上企业分类的搜索值）
      this.getPdData();
    },
    //领取优惠券
    getCoupon(e) {
      let id = e.currentTarget.dataset.id;
      let urlStr = app.getNetAddresss("plugin.store-cashier.frontend.store.coupon-get");
      app._getNetWork({
        url: urlStr,
        data: {
          coupon_id: id,
        },
        success: function (resdata) {
          var res = resdata.data;
          if (res.result == 1) {
            wx.showModal({
              title: "提示",
              content: "领取成功",
              showCancel: false,
              success(res) {},
            });
          } else {
            wx.showToast({
              title: res.msg,
              icon: "none",
              duration: 1500,
            });
          }
        },
        fail: function (res) {
          console.log(res);
        },
      });
    },
    //跳转至企业首页
    gotoShop(e) {
      let id = e.currentTarget.dataset.id;
      wx.navigateTo({
        url: "/packageC/o2o/o2oStore/o2oStore?store_id=" + id,
      });
    },
    // 打开地图
    goToAdress(e) {
      let latitude = e.currentTarget.dataset.items.latitude;
      let longitude = e.currentTarget.dataset.items.longitude;
      let store_name = e.currentTarget.dataset.items.store_name;
      let point = app.BMapTransqqMap(parseFloat(longitude), parseFloat(latitude));
      wx.openLocation({
        latitude: point.lat,
        longitude: point.lng,
        scale: 18,
        name: store_name,
      });
    },
    getMoreList() {
      let that = this;
      let point;
      //获取更多数据
      this.setData({
        [`isLoadMore${this.data.tab}`]: false,
      });
      if (this.data[`page${this.data.tab}`] >= this.data[`total_page${this.data.tab}`]) {
        return;
      } else {
        this.data[`page${this.data.tab}`] = this.data[`page${this.data.tab}`] + 1;
        switch (this.data.tab) {
        case 0:
          point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat));
          this.setData({
            dataJson: {
              lng: point.lng ? point.lng : "",
              lat: point.lat ? point.lat : "",
              city_name: this.data.city,
              page: this.data.page0,
            },
          });
          break;
        case 2:
          this.setData({
            dataJson: {
              page: this.data.page2,
            },
          });
          break;
        case 3:
          this.setData({
            dataJson: {
              page: this.data.page3,
            },
          });
          break;
        }
        let category_ids = [];
        if(this.data.datas.list&&this.data.datas.list.length>0){
          this.data.datas.list.forEach(element => {
            category_ids.push(element.id);
          });
          this.data.dataJson.category_ids = category_ids;
        }
        let urlStr = app.getNetAddresss(that.data.api);
        app._postNetWork({
          url: urlStr,
          data: that.data.dataJson,
          success: function (resdata) {
            var res = resdata.data;
            if (res.result == 1) {
              if (that.data.tab !== 1) {
                that.setData({
                  [`shopList${that.data.tab}`]: that.data[`shopList${that.data.tab}`].concat(res.data.data),
                  [`total_page${that.data.tab}`]: res.data.last_page,
                });
              }
              if (that.data[`page${that.data.tab}`] >= that.data[`total_page${that.data.tab}`]) {
                that.setData({
                  [`isLoadMore${that.data.tab}`]: false,
                });
              } else {
                that.setData({
                  [`isLoadMore${that.data.tab}`]: true,
                });
              }

              if (that.data.tab == 0) {
                if (that.data[`shopList${that.data.tab}`].length > that.data.datas.get_number) {
                  that.data[`shopList${that.data.tab}`].splice(that.data.datas.get_number, that.data[`shopList${that.data.tab}`].length - that.data.datas.get_number);
                  console.log(that.data[`shopList${that.data.tab}`],'aaaaaaaaa')
                  that.setData({
                    [`shopList${that.data.tab}`]: that.data[`shopList${that.data.tab}`],
                    [`isLoadMore${that.data.tab}`]: false,
                  });
                }
              }
              that.triggerEvent("setLoadMore", {
                isLoadMore: that.data[`isLoadMore${that.data.tab}`],
              });
              that.setData({
                is_sales_display: res.data.is_sales_display
              })
              // console.log(that.data.shopList0)
            } else {
              that.setData({
                [`page${that.data.tab}`]: [`page${that.data.tab}`] - 1,
                [`isLoadMore${that.data.tab}`]: false,
              });
            }
          },
          fail: function (res) {
            console.log(res);
          },
        });
      }
    },
    onClick(e) {
      this.setData({
        active:e.detail.name
      })
      // bug 任务 #10587
      this.chooseTab("",e.detail.name,'tag');
    },
    chooseTab(key, index,tag) {
      // 找到对应的索引
      function pFn(p) {
        return p.id == index;
      }
      if(!tag){
        this.setData({
          tab: this.data.titleName.findIndex(pFn),
        });
      }else{
        this.setData({
          tab: Number(index),
        });
      }
      this.setData({
        api: this.data.titleName[this.data.tab].url,
      });
      let type = this.data.titleName[this.data.tab].id;
      this.setData({
        [`isLoadMore${this.data.tab}`]: false,
        [`total_page${this.data.tab}`]: 0,
        [`page${this.data.tab}`]: 1,
      });
      if (type === "business_merchant") {
        let point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat));
        this.setData({
          dataJson: {
            lng: point.lng ? point.lng : "",
            lat: point.lat ? point.lat : "",
            city_name: this.data.city,
            page: this.data.page0,
            sort_mode: this.data.datas.sort_mode,
            goods_type: this.data.datas.goods_type
          },
        });
      } else {
        switch (type) {
        case "business_discount":
          this.setData({
            dataJson: {
              page: this.data.page1
            },
          });
          break;
        case "business_coupon":
          this.setData({
            dataJson: {
              page: this.data.page2,
            },
          });
          break;
        case "business_goods_gift":
          this.setData({
            dataJson: {
              page: this.data.page3,
            },
          });
          break;
        }
      }
      let category_ids = [];
      if(this.data.datas.list&&this.data.datas.list.length>0){
        this.data.datas.list.forEach(element => {
          category_ids.push(element.id);
        });
        this.data.dataJson.category_ids = category_ids;
      }
      this.getList();
    },
    getList() {
      let that = this;
      // console.log(this.data.api,"api")
      let urlStr = app.getNetAddresss(that.data.api);
      app._postNetWork({
        url: urlStr,
        data: this.data.dataJson,
        success: (resdata) => {
          var res = resdata.data;
          if (res.result == 1) {
            if (that.data.tab === 1) {
              that.setData({
                pd_classfy_arr: res.data.store_category,
                pd_date_arr: res.data.date_time,
              });
              //赋初值日期和企业分类id
              that.setData({
                pd_category_id: res.data.store_category[0].id,
                pd_date: res.data.date_time[0],
              });
              
              that.getPdData();
            } else {
              that.setData({
                [`shopList${that.data.tab}`]: res.data.data,
                [`total_page${that.data.tab}`]: res.data.last_page,
              });
            }
            if (that.data[`total_page${that.data.tab}`] <= 1) {
              that.setData({
                [`isLoadMore${that.data.tab}`]: false,
              });
            } else {
              that.setData({
                [`isLoadMore${that.data.tab}`]: true,
              });
            }

            if (that.data.tab == 0) {
              if (that.data[`shopList${that.data.tab}`].length > that.data.datas.get_number) {
                that.data[`shopList${that.data.tab}`].splice(that.data.datas.get_number, that.data[`shopList${that.data.tab}`].length - that.data.datas.get_number);
                that.setData({
                  [`shopList${that.data.tab}`]: res.data.data,
                  [`isLoadMore${that.data.tab}`]: false,
                });
              }
            }

            if (res.data.hasOwnProperty("store_list_style")) {
              that.setData({
                openTemplate: res.data.store_list_style || 0
              });
            }
            that.setData({
              is_sales_display: res.data.is_sales_display
            })
            // U_tabcontrol 选项卡企业，如果是手动选择企业就不显示加载，直接显示全部企业
            if(this.data.datas.goods_type == 'store' && this.data.U_tabcontrol){
              this.setData({
                isLoadMore0:false
              })
            }
            // console.log(this.data[`shopList${that.data.tab}`], "aa");
          } else {
            // wx.showToast({
            // 	icon: 'none',
            // 	title: res.msg,
            // 	duration: 1500
            // })
            console.log(res.msg);
          }
          // console.log(that.data.shopList0)
        },
        fail: function (res) {
          console.log(res);
          wx.showToast({
            title: res.msg,
            duration: 1000,
            icon: "none",
          });
        },
      });
    },
    getPdData() {
      let that = this;
      let point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat));
      let json = {
        lng: point.lng,
        lat: point.lat,
        city_name: this.data.city,
        page: this.data.page1,
        week: this.data.pd_date.week_num,
        category_id: this.data.pd_category_id,
        day: this.data.pd_date.day,
      };
      let urlStr = app.getNetAddresss("plugin.universal-card.frontend.store-discount.privilege");
      app._getNetWork({
        url: urlStr,
        data: json,
        success: function (resdata) {
          var res = resdata.data;
          if (res.result == 1) {
            that.setData({
              total_page1: res.data.last_page,
              shopList1: res.data.data,
            });
            if (that.data.total_page1 <= 1) {
              that.setData({
                isLoadMore1: false,
              });
            } else {
              that.setData({
                isLoadMore1: true,
              });
            }
          } else {
            that.setData({
              isLoadMore1: false,
            });
          }
        },
        fail: function (res) {
          console.log(res);
        },
      });
    },
  },
});
